#pragma once

#include <windows.h>
#include <gl\gl.h>
#include <gl\glu.h>
#include <vector>
#include <cg\cg.h>

#include "..\common\headers\IRenderable.h"
#include "..\Sgm\Geometry.h"

#include "GlExtFactory.h"
#include "Material.h"
#include "Mesh.h"
#include "MaterialsCollection.h"

class Model : public IRenderable
{
private:
	int meshesCount;
	Mesh **meshes;
	CGparameter matrixParam;

public:
	Model(sgm::Geometry *model, CGparameter matrixParam);

	void AssignMaterials(MaterialsCollection *matColl);
	void Process(float ms);
	void Render();

	Mesh ** GetMeshes();
	int GetMeshCount();
};
